package com.tpay.server;

import java.io.Serializable;
import java.util.List;

import javax.persistence.EntityManager;

public interface GeneralDao {
	EntityManager getEm();
	
	void insert(Object entity); 
	<T> T update(T entity);
	<T> void deleteById(Class<T> type, Serializable id);
	<T> void deleteAll(Class<T> type);
	
	long countAll(Class<?> type);
	
	<T> T find(Class<T> entityClass, Serializable id);
	<T> List<T> findAll(Class<T> type);
	
	<T> T getReference(Class<T> type, Serializable id);
}
